package com.tarry.sort;

import javax.xml.transform.Templates;
import java.util.Arrays;

/**
 * 冒泡排序
 * <br>
 * (1) 冒泡排序是一个原地排序算法
 * <br>
 * (2) 冒泡排序是一个稳定排序算法
 */

public class BubbleSort {

    public static void main(String[] args) {
        int[] arrays = new int[]{3,5,1,4,6,7,2};
        BubbleSort.sort(arrays);
        System.out.println(Arrays.toString(arrays));
    }

    public static void sort(int[] arrays){
        if (arrays.length == 0) {
            return ;
        }
        for (int i = 0; i < arrays.length; i++) {
            // 是否存在数据交换，提前退出循环的标志
            boolean flag = false;
            for (int j = 0; j < arrays.length - i - 1; j++) {
                if (arrays[j] > arrays[j+1]){
                    int tmp = arrays[j+1];
                    arrays[j+1] = arrays[j];
                    arrays[j] = tmp;
                    flag = true;
                }
            }
            if (!flag) {
                break;
            }
        }
    }
}
